package com.seres.enums;

/**
 * @author Tan-Bowen
 * @description TODO  redis缓存枚举类,所有得redis缓存在这里定义
 * @date 2021/7/27 16:11
 */
public enum RedisCacheEnum {
    /** 配置刷新 */
    CONFIG_EVENT("config:event"),
    /** 单表缓存 */
    TABLE("table"),
    /** 用户token缓存 :userId */
    USER_TOKEN("user:token"),
    /** 用户列表 測試  */
    USER_LIST("user:list"),
    /** 用户所拥有得角色 key：userId */
    USER_ROLE("user:role"),
    /** 角色所拥有的菜单以及接口权限 key：roleId */
    ROLE_MENU("role:menu"),
    /** 缓存所有部门 */
    DEPT_LIST("dept:list"),

//    /** 接口缓存 */
//    INTERFACE("interface:item"),
    DICT_LIST("dict:list"),
    ;
    private final String key;

    RedisCacheEnum(String key){
        this.key = key;
    }


    /**
     * @author Tan-Bowen
     * @description TODO 创建redis key
     * @date 2021/7/27 16:11
     * @param [params]
     * @paramType [java.lang.Object...]
     * @return java.lang.String
     */
    public String createKey(Object ...params){
        StringBuilder sb = new StringBuilder();
        sb.append(getKey());
        for(Object param:params){
            if(param!=null){
                sb.append(":");
                sb.append(param);
            }
        }
        return sb.toString();
    }
    public String getKey() {
        return key;
    }
}
